/**
 * 路由导航守卫
 * @function
 * @param {VueRouter} router 路由实例
 */
// 获取取消正在执行的函数逻辑
import { cancelFn } from '@u/axios'

//进度条
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
NProgress.configure({ showSpinner: false })
/**
 * 获取版本号
 */
import versionTood from './versionUpdate'

export default function (router) {
	/**
	 * 全局前置守卫
	 */
	router.beforeEach((to, from, next) => {
		// 外链地址
		if (to.meta.isFrame) {
			window.open(to.path, '_block')
		} else {
			NProgress.start()
			cancelFn()
			//判断当前代码版本是否与服务器中代码版本一致，如不一致则刷新页面获取最新
			versionTood()
			document.title = to.meta.title
			if (to.meta.title) document.title = to.meta.title
			next()
		}
	})

	/**
	 * 全局后置守卫
	 */
	router.afterEach((to, from) => {
		NProgress.done()
		document.getElementById('layoutId')?.scroll(0, 0)
		window.scroll(0, 0)
	})
}
